1. Field of the Invention
The embodiments of the invention relate to a method and apparatus for improved throughput in a network device. Specifically, embodiments of the invention relate to a method and apparatus for scalable pipelined and out of order packet processing in a network device.
2. Background
Computer networks such as local area networks, wide area networks, the Internet and similar networks are utilized to transfer data between computers over short or long distances. Computer networks often utilize multiple transmission mediums, network devices and protocols. The number of computers attached to computer networks, the amount of data and the frequency at which these computer networks are used are constantly increasing. Increasingly, computer networks rely on large numbers of network devices to transfer and route data through the networks from a source computer to a destination computer. The speed and efficiency of the network devices responsible for the transfer and routing directly impacts the speed and throughput of the networks.
Network devices analyze received data to determine how to forward the data to ensure it reaches its ultimate destination. Many types of protocols are used to transfer the data. Each protocol utilizes different data structures to package the data and identify its destination and relevant information about the data to be transferred. The protocols are often nested one within the other or similarly interconnected. The network devices process each received data packet by processing at least one protocol level and determining a destination for the packet. Often the transmission protocols are closely related to the type of transmission medium. The network device can be connected to multiple types of transmission mediums and multiple lines of each transmission medium. The determination of the destination by the network device can also encompass the determination of the appropriate transmission line, transmission medium type and intermediate destinations and the appropriate formatting of the packet data to comply with the requirements of the transmission medium, transmission line and intermediate destinations.
The typical network device includes a processing unit, a set of communication ports and a memory device for storing forwarding tables or routing tables. The network device receives data on a communication port and processes the data packet by packet. The packets are examined and forwarded in order and the protocols of each packet are similarly serially examined. If the packet has not reached its end destination, the processor uses a forwarding table to determine the communication port and the next machine to receive the packet. The packet is then transmitted through a communication port determined by the forwarding table or routing table and any modification to the packet data that is needed due to differences in protocols or mediums for the communication port and receiving machine. The serial processing and processor speed serves as a limit on the bandwidth capabilities of the network device.